package com.zykj.observer;

/**
 * @author zhoulj(周利军) [1217102780@qq.com]
 * @Title: Subject
 * @Project: ${MODEL_NAME}
 * @Module ID:   <(模块)类编号，可以引用系统设计中的类编号>
 * @Comments: <对此类的描述，可以引用系统设计中的描述>
 * @JDK version used:      <JDK1.8> 32
 * @since 2018/12/26-11:32
 */
public interface Subject {
    // 观察对象 和 主体对象 两者 松耦合， 彼此不清楚具体实现
    //TODO 设计原则： 为了交互对象之间的松耦合设计而努力
    //  观察者模式： 定义了对象之间一对多的依赖，一个对象状态发生变化时， 他所有的的监听观察对象都会自动收到更新
    public void registerObserver(Observer o);
    public void removeObserver(Observer o);
    public void notifyObservers();
}
